;; Test script for begin special form

(display "Testing begin special form with various expressions\n")

;; Test with multiple expressions
(begin
  (display "1. Testing multiple expressions: ")
  (display 3)
  (display "\n")
)

;; Test with arithmetic operations
(begin
  (display "2. Testing arithmetic operations: ")
  (display (/ 20 2))
  (display "\n")
)

;; Test with nested begin forms
(begin
  (display "3. Testing nested begin forms: ")
  (display (begin
    1
    2
    3
  ))
  (display "\n")
)

;; Test with variable definitions and function calls
(begin
  (display "4. Testing variable definitions and function calls: ")
  (define square (lambda (n) (* n n)))
  (display (square 5))
  (display "\n")
)

;; Test with string literals
(begin
  (display "5. Testing string literals: ")
  (display "world")
  (display "\n")
)

;; Test with an empty begin form
(begin
  (display "6. Testing empty begin form: ")
  (begin)
  (display "\n")
)

;; Test with a single expression
(begin
  (display "7. Testing single expression: ")
  (display 42)
  (display "\n")
)

(display "All tests completed!\n")
